【初心者向け・Python】VSCodeで特定のディレクトリのみ保存時に自動でBlackとisortのフォーマットをかける方法
データアナリティクス事業本部のueharaです。
今回は、VSCodeで特定のディレクトリのみ自動でBlackとisortのフォーマットをかける方法をご紹介したいと思います。
はじめに
VSCodeの設定には「ユーザー設定」と「ワークスペース設定」の2種類があります。
以下の記事が分かりやすいですが、適用される優先度としては ワークスペース設定 > ユーザー設定 となります。
すなわち、例えばフォント設定がユーザー設定で定義されており、ワークスペース設定で定義されてない場合はユーザー設定が適用されます。
逆に、フォント設定がユーザー設定にもワークスペース設定にも定義されている場合は、ワークスペース設定が適用されます。
事前準備
Blackとisortのインストール
Blackとisortを pip
でインストールします。
$ pip install black isort
拡張機能のインストール
まず、拡張機能のマーケットプレースから「Black Formatter」をインストールします。
次に、「isort」をインストールします。
以上で準備は完了です。
やってみた
テストファイル作成
まず、VSCodeで適当なフォルダを開き、以下の test.py
を作成します。(フォーマットは敢えて汚くしています)
. └── test.py
import sys import os import boto3 def main(): """Test Function """ print("aaaaa", "bbb", "ccc") if __name__ == "__main__": main()
ワークスペース設定の作成
次に、ワークスペース設定を作成します。
具体的には、作業ディレクトリに .vscode
フォルダを作り、 その中に settings.json
を作成します。(※この settings.json
がワークスペースの設定)
. ├── .vscode │ └── settings.json └── test.py
作成した settings.json
は、自動でフォーマットを適用させるために以下の記載を行います。
settings.json
{
"[python]": {
// Blackでフォーマット
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnType": true,
"editor.formatOnPaste": true,
"editor.formatOnSave": true, // 保存時に適用
// isortでフォーマット
"editor.codeActionsOnSave": {
"source.organizeImports": true // 保存時に適用
},
"isort.args": ["--profile", "black"]
}
}
Pythonスクリプトのフォーマット
先に作成した test.py
を再保存すると、Blackとisortでフォーマットがかかり、以下のようにフォーマットされます。
import os import sys import boto3 def main(): """Test Function""" print("aaaaa", "bbb", "ccc") if __name__ == "__main__": main()
以後は作成するPythonスクリプト全てに対してフォーマットがかかるようになります。
なお、上記の設定はあくまでワークスペース設定のため、他の作業スペースには影響を与えません。
最後に
今回は、VSCodeで特定のディレクトリのみ自動でBlackとisortのフォーマットをかける方法をご紹介してみました。
参考になりましたら幸いです。